package com.jacob.androidstudy.androidnote.userinterface;

import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;

/**
 * 自定义组件分两种
 * 1 Customized Component
 * 继承于View，增加更多的属性和事件。
 * 
 * 
 * 2 Compound Component
 * 继承于ViewGroup，把多个简单组件通过布局组装成一个复合组件。
 * 
 * 
 * 自定义View的步骤
 * 1 
 * 
 * 
 */
public class 自定义组件 {
//	自定义组件的步骤
//	1 新建自定义组件类，并集成于View或ViewGroup
	class CustomButton extends Button {

		public CustomButton(Context context, AttributeSet attrs) {
			super(context, attrs);
		}

		public CustomButton(Context context) {
			super(context);
		}

//		2 若要改变显示，覆盖onDraw()方法。
		@Override
		protected void onDraw(Canvas canvas) {
			super.onDraw(canvas);
			
		}
		
//		3 若要增加监听事件，定义监听器接口，增加监听方法，并在回调方法中调用监听器的方法。
/*		interface ButtonLongClickLisener {
			public void ButtonLongClick(CustomButton customButton) ;
		}*/
		
/*		ButtonLongClickLisener mButtonLongClickLisener;
		public void setOnButtonLongClickLisener(ButtonLongClickLisener buttonLongClickLisener) {
			this.mbuttonLongClickLisener = buttonLongClickLisener;
		}*/

		@Override
		public boolean onTouchEvent(MotionEvent event) {
/*			if (event.getEventTime() > 1000) {
				if (mbuttonLongClickLisener != null) {
					mbuttonLongClickLisener.ButtonLongClick(this);
				}
			}*/
			
			return super.onTouchEvent(event);
		}
		
	}
	
//	4 在布局XML中使用组件
//	若自定义组件是内部类，在XML中这样引用：<view class="包名.外部类名$内部类名" />
//	若自定义组件是一般类，在XML中这样引用：<包名.类名 />


}
